Skip to content

Conversation

swolchok
Copy link
Contributor

We had an old version, and that version didn't work quite right when
handed a const ref to a callable. Just resync and note divergences
from the original in the comment. Our old version also had an
explicit constructor, which is not desirable because it
complicates callsites. It was also a divergence from both LLVM and
the upcoming C++26
std::function_ref
.

The test made invalid use of a FunctionRef -- you can't keep one
around past the lifetime of the function object it refers to, but the
test held onto a temporary capturing lambda in an object. I fixed the
test.

[ghstack-poisoned]
@swolchok
Copy link
Contributor Author

swolchok commented Apr 24, 2025

@swolchok swolchok requested a review from JacobSzwejbka as a code owner April 24, 2025 20:15
Copy link

pytorch-bot bot commented Apr 24, 2025

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/10440

Note: Links to docs will display an error until the docs builds have been completed.

❌ 2 New Failures

As of commit 773b183 with merge base 1432243 (image):

NEW FAILURES - The following jobs have failed:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

EXPECT_EQ(item1.get(), 1);
val = 0;
FunctionRef<void(int32_t&)> ref2(one);
ref(val);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/ref/ref2 perhaps?

[ghstack-poisoned]
@swolchok
Copy link
Contributor Author

bypassing two apparent tests flakes and merging.

@swolchok swolchok merged commit 6feb623 into main Apr 25, 2025
239 of 242 checks passed
@swolchok swolchok deleted the gh/swolchok/426/head branch April 25, 2025 20:00
kedarnath03 pushed a commit to kedarnath03/executorch that referenced this pull request Jun 25, 2025
We had an old version, and that version didn't work quite right when
handed a const ref to a callable. Just resync and note divergences
from the original in the comment. Our old version also had an
`explicit` constructor, which is *not* desirable because it
complicates callsites. It was also a divergence from both LLVM and
[the upcoming C++26
std::function_ref](https://en.cppreference.com/w/cpp/utility/functional/function_ref/function_ref).

The test made invalid use of a FunctionRef -- you can't keep one
around past the lifetime of the function object it refers to, but the
test held onto a temporary capturing lambda in an object. I fixed the
test.

ghstack-source-id: 87eea49
ghstack-comment-id: 2828754943
Pull-Request-resolved: pytorch/executorch#10440
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ciflow/trunk CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. topic: not user facing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants